package com.xu.system.service;

import com.xu.system.model.pojo.workTime.AddWorkTimeConfigReq;
import com.xu.system.model.pojo.workTime.DelWorkTimeReq;
import com.xu.system.model.pojo.workTime.EditWorkTimeConfigReq;
import com.xu.system.model.pojo.workTime.SaveWorkTimeReq;

import java.time.LocalDateTime;

/**
 * 工作时间服务
 *
 * @Author: 许乾伟
 * @Date: 2024/12/24 10:48
 */
public interface IWorkTimeService {
    /**
     * 新增工作日配置
     *
     * @param req
     * @return
     */
    Boolean addConfig(AddWorkTimeConfigReq req);

    /**
     * 更新工作日配置
     *
     * @param req
     * @return
     */
    Boolean editConfig(EditWorkTimeConfigReq req);

    /**
     * 删除工作日配置
     *
     * @param configId
     * @return
     */
    Boolean delConfig(Long configId);

    /**
     * 保存配置
     *
     * @param req
     * @return
     */
    Boolean save(SaveWorkTimeReq req);

    /**
     * 删除配置
     *
     * @param req
     * @return
     */
    Boolean del(DelWorkTimeReq req);

    /**
     * 返回2个时间之间的有效工作时间
     *
     * @param startTime  开始时间
     * @param endTime    结束时间
     * @param configCode 适用工作日配置编码
     * @return
     */
    Long getWorkTime(LocalDateTime startTime, LocalDateTime endTime, String configCode);
}
